llamar a la funci贸n que contiene argc,argv[]

Jen
28 de Febrero del 2006
Tengo este enunciado:
Escribir un programa que copie un fichero en otro y a continuaci贸n liste el fichero copiado. Los par谩metros se pasar谩n por la l铆nea de comandos. Sint谩xis:
./copia fichero_origen fichero_destino
路 En el programa principal se har谩n las siguientes llamadas a las funciones:
copiarFicheros y listarFichero. Pasa los par谩metros que consideres
necesarios.
路 Escribe las funciones en una biblioteca de funciones llamada ficheros.c y el fichero de cabecera ficheros.h
路 Escribe el fichero Makefile correspondiente
==================================================
En fin, tengo un main: main(int argc,char *argv[])
una funci贸n para copiar el fichero en otro, a la que le paso los argumentos: copiarficheros(int argc,char *argv[])
y una funci贸n que lista el fichero resultante: listarfichero(int argc,char *argv[])

Mi pregunta es esta: 驴c贸mo hago la llamada, desde main, a dichas funciones? Yo he probado con algo as铆: copiarficheros(argc,*argv[]), y tambi茅n a帽adi茅ndoles ampersands (&), n煤mero de argumento (por ejemplo argv[1]) y otras m谩s cosas, pero no doy con lo que busco, ya que soy nueva con esto de usar argumentos desde la l铆nea de comando, pueden ayudarme por favor? Gracias de antemano ;)

Noel Solw
28 de Febrero del 2006
Te envio un programa que trabaja con comandos de linea, como ejemplo para que puedas hacer el tuyo.
Este programa es una calculadora elemental, que acepta una sola operacio por vez. Cuidate de dejar espacios entre los numeros y el operador.

// program k9b1.CPP - page 195
// command lines arguments : calculator.
// 15/3/2002
// written in Borland CPP ver 3.1

#include <conio.h>
#include <iostream.h>
#include <iomanip.h>
#include <math.h>

void Process(int argc,char *argv[])
{
if(argc != 4)
{
cout << "wrong arguments number ! ! !" << endl;
return;
}
float first = atof(argv[1]),
second = atof(argv[3]),
result;
char op = argv[2][0];
cout << first << " " << op << " " << second;
switch(op)
{
case '+' : result = first + second;
break;
case '-' : result = first - second;
break;
case '*' : result = first * second;
break;
case '/' : if(fabs(second) < 0.00001)
{
cout << endl << "division by zero error ! ! !" << endl;
return;
}
result = first / second;
break;
} // SWITCH op
cout << " = " << result << endl;
} // PROCESS

void main(int argc,char *argv[])
{
clrscr();
cout << "command lines arguments : calculator.n";
cout << "-----------------------------------------------------"
"-------------------------n";
Process(argc,argv);
cout << "-----------------------------------------------------"
"-------------------------n";;
cout << "end of program - good bye ! ! !n";
getch();
} // MAIN

/*
command lines arguments : calculator.
------------------------------------------------------------------------------
120 / 19 = 6.31579
------------------------------------------------------------------------------
end of program - good bye ! ! !
*/